namespace SCIENEW {
    /// <summary>
    /// 流体运输系统内的管道
    /// </summary>
    public interface IFluidTransferrerPipeDevice {
        /// <summary>
        /// 获得此种管道运输的流体类型（接口）
        /// </summary>
        /// <returns></returns>
        Type GetTransferringFluidType();

        /// <summary>
        /// 获取此种管道在检测管道组时要检测哪几个相邻面
        /// </summary>
        /// <param name="value"></param>
        /// <returns></returns>
        HashSet<int> GetFaceMask(int value);

        /// <summary>
        /// 获取此管道的管道连接类
        /// </summary>
        /// <param name="fromTransferrers"></param>
        /// <param name="toTransferrers"></param>
        /// <param name="fromConnectors"></param>
        /// <param name="toConnectors"></param>
        /// <param name="rate"></param>
        /// <param name="transferringType"></param>
        /// <returns></returns>
        PipeFluidConnection GetConnection(HashSet<FluidTransferrer> fromTransferrers, HashSet<FluidTransferrer> toTransferrers, HashSet<FluidConnector> fromConnectors, HashSet<FluidConnector> toConnectors, float rate, Type transferringType, SubsystemFluidTransfer subsystemFluidTransfer);
    }
}